const {contextBridge, ipcRenderer} = require('electron');

const signalTypes = require('../../../signal_types');
const {initPeerControl,dc_ee} = require('./peer-control');
const {log} = require('../../../utils/log');

console.log('dc_ee:',dc_ee);

contextBridge.exposeInMainWorld(
  'electron',
  {
    closeControlWin(){
      ipcRenderer.send(signalTypes["CONTROL_WINDOW:CLOSE"]);
    },
    minimizeControlWin(){
      ipcRenderer.send(signalTypes["CONTROL_WINDOW:MINIMIZE"]);
    },
    maximizeControlWin(){
      ipcRenderer.send(signalTypes["CONTROL_WINDOW:MAXIMIZE"]);
    },
    showMainWin(){
      ipcRenderer.send(signalTypes["CONTROL_WINDOW:SHOW_MAIN_WINDOW"]);
    },
    log,

    onNewTab(cb) {
      ipcRenderer.on(signalTypes["CONTROL_WINDOW:OPEN_NEW_TAB"], async (e, be_controlled_code) => {
        log('be_controlled_code:', be_controlled_code);
        cb(be_controlled_code); //todo 这么传是不是太啰嗦了
        await initPeerControl(be_controlled_code);
        //todo
        //  1.断开p2p连接时要清理 (如果是整个窗口都没了, 也不用清理控制窗口的连接了, 窗口都没了... 如果是每个标签页的没了（控制的其中一个断开了）,那需要清理一下)
        //  2.是否支持被多个人控制？ 支持的话 交换信息时 也要带上对方的code用以区分哪个市哪个
      });
    },
    emitRobotCommand(type,data){
      dc_ee.emit('robot', type, data);
    }
  }
)
